package com.ruoyi.record.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;

import javax.validation.constraints.NotBlank;

import com.ruoyi.common.mybatisplus.core.BaseEntity;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import com.ruoyi.common.annotation.Excel;

/**
 * 职称申报对象 record_professional
 * 
 * @author ruoyi
 * @date 2024-05-09
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("record_professional")
public class RecordProfessional extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 申报id */
    @TableId(type = IdType.AUTO)
    private Long professionalId;

    /** 申报年度 */
    @NotBlank(message = "申报年度不能为空")
    @Excel(name = "申报年度")
    private String professionalYear;

    @TableField(exist = false)
    private Long deptId;

    /** 所在科室 */
    @Excel(name = "所在科室", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String deptName;

    /** 身份证号 */
    @Excel(name = "身份证号")
    @TableField(exist = false)
    private String idCard;

    /** 姓名 */
    @Excel(name = "姓名")
    @TableField(exist = false)
    private String userName;

    /** 性别 */
    @Excel(name = "性别", dictType = "sys_user_sex", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String sex;

    /** 出生年月 */
    @Excel(name = "出生年月", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String birthday;

    /** 参加工作时间 */
    @Excel(name = "参加工作时间", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String workTime;

    /** 来院时间 */
    @Excel(name = "来院时间", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String hospitalTime;

    /** 现从事专业 */
    @NotBlank(message = "现从事专业不能为空")
    @Excel(name = "现从事专业", dictType = "major_type", comboDict = "major_type")
    private String majorType;

    /** 评审依据学历 */
    @NotBlank(message = "评审依据学历不能为空")
    @Excel(name = "评审依据学历", dictType = "basic_educate_name", comboDict = "basic_educate_name")
    private String educateType;

    /** 依据学历取得时间 */
    @NotBlank(message = "依据学历取得时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "依据学历取得时间")
    private String educateTime;

    /** 所学专业 */
    @NotBlank(message = "所学专业不能为空")
    @Excel(name = "所学专业")
    private String educateMajor;

    /** 现职务资格 */
    @Excel(name = "现职务资格", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String postName;

    /** 现资格及取得时间 */
    @Excel(name = "现资格取得时间", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String obtainTime;

    /** 现资格聘任时间 */
    @Excel(name = "现资格聘任时间", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String engageTime;

    /** 专业年限 */
    @NotBlank(message = "专业年限不能为空")
    @Excel(name = "专业年限")
    private String majorYear;

    /** 继续教育是否合格 */
    @NotBlank(message = "继续教育是否合格不能为空")
    @Excel(name = "继续教育是否合格", dictType = "sys_yes_no", comboDict = "sys_yes_no")
    private String isPass;

    /** 申报类别 */
    @NotBlank(message = "申报类别不能为空")
    @Excel(name = "申报类别", dictType = "professional_type", comboDict = "professional_type")
    private String professionalType;

    /** 编制情况 */
    @Excel(name = "编制情况", dictType = "basic_work_duty", type = Excel.Type.EXPORT)
    @TableField(exist = false)
    private String workDuty;

    /** 申报职称 */
    @NotBlank(message = "申报职称不能为空")
    @Excel(name = "申报职称", dictType = "professional_name", comboDict = "professional_name")
    private String professionalName;

    /** 申报职称等级 */
    @NotBlank(message = "申报职称等级不能为空")
    @Excel(name = "申报职称等级", dictType = "basic_post_level", comboDict = "basic_post_level")
    private String professionalLevel;

    /** 是否一线员工 */
    @NotBlank(message = "是否一线员工不能为空")
    @Excel(name = "是否一线员工", dictType = "sys_yes_no", comboDict = "sys_yes_no")
    private String isFront;

    /** 申报方式 */
    @NotBlank(message = "申报方式不能为空")
    @Excel(name = "申报方式", dictType = "professional_way", comboDict = "professional_way")
    private String professionalWay;

    private String plurality;

    private String isTeacher;

    private String isFarmer;

    private String isStandard;

    private String isFailure;

    /** 提交状态 */
    private String submitFlag;

    /** 提交时间 */
    private Date submitTime;

    /** 退回原因 */
    private String submitRemark;

    /** 继续医学教育情况 */
    private String score1;

    /** 学历得分 */
    private String score2;

    /** 资历得分 */
    private String score3;

    /** 硬件分 */
    private String score4;

    /** 考核情况 */
    private String score5;

    /** 考核得分 */
    private String score6;

    /** 兼职 */
    private String score7;

    /** 荣誉 */
    private String score8;

    /** 荣誉得分 */
    private String score9;

    /** 科教分值 */
    private String score10;

    /** 村医 */
    private String score11;

    /** 带教老师 */
    private String score12;

    /** 软件总分 */
    private String score13;

    /** 医务科扣分 */
    private String score14;

    /** 纪检监察室扣分 */
    private String score15;

    /** 医务科考核得分 */
    private String score16;

    /** 审批结果 */
    @Excel(name = "审批结果", type = Excel.Type.EXPORT)
    private String verifyFlag;

    /** 审批时间 */
    @Excel(name = "审批时间")
    private String verifyTime;

    /** 审核意见 */
    private String verifyRemark;

    /** 评审结果 */
    @Excel(name = "评审结果", type = Excel.Type.EXPORT)
    private String reviewFlag;

    /** 评审时间 */
    @Excel(name = "评审时间")
    private String reviewTime;

    /** 评审意见 */
    private String reviewRemark;

    /** 删除标识（0正常2删除） */
    @TableLogic
    private String delFlag;

    /** 申请内容信息 */
    @TableField(exist = false)
    private List<RecordProfessionalInfo1> info1List;

    /** 申请内容信息 */
    @TableField(exist = false)
    private List<RecordProfessionalInfo2> info2List;

    /** 申请内容信息 */
    @TableField(exist = false)
    private List<RecordProfessionalInfo3> info3List;

}
